package 力扣题库;

import 剑指offer.ListNode;

public class p206反转链表 {
    public ListNode reverseList1(ListNode head) {
        //头插法
        if (head==null) {
            return null;
        }

        if (head.next==null) {
            return head;
        }

        ListNode cur=head;
        ListNode curNext=cur.next;
        cur.next=null;
        cur=curNext;

        while (cur!=null) {
            curNext=cur.next;
            cur.next=head;
            head=cur;
            cur=curNext;
        }
        return head;

    }

    public ListNode reverseList(ListNode head) {
        //三个指针
        if (head==null) {
            return null;
        }
        if (head.next==null) {
            return head;
        }

        ListNode prev=null;
        ListNode cur=head;

        while (cur!=null) {
           ListNode curNext=cur.next;
           cur.next=prev;
           prev=cur;
           cur=curNext;
        }
        return prev;
    }


}
